cabal-version:      2.2
name:               finitary-derive
version:            3.0.0.0
synopsis:
  Flexible and easy deriving of type classes for finitary
  types.

description:
  Provides a collection of wrappers, allowing you to easily
  define (among others) Unbox, Storable, Hashable and
  Binary instances for finitary types with flexibility in
  terms of representation and efficiency. Never write an
  Unbox instance by hand again!

homepage:           https://notabug.org/koz.ross/finitary-derive
license:            GPL-3.0-or-later
license-file:       LICENSE.md
author:             Koz Ross
maintainer:         koz.ross@retro-freedom.nz
copyright:          (C) Koz Ross 2019
category:           Data
tested-with:        GHC ==8.6.5 || ==8.8.3 || ==8.10.1
build-type:         Simple
extra-source-files:
  CHANGELOG.md
  README.md

library
  exposed-modules:
    Data.Finitary.Finiteness
    Data.Finitary.PackBits
    Data.Finitary.PackBits.Unsafe
    Data.Finitary.PackBytes
    Data.Finitary.PackInto
    Data.Finitary.PackWords

  other-modules:    Data.Finitary.Internal
  build-depends:
    , base                     >=4.12     && <5
    , binary                   ^>=0.8.8.0
    , bitvec                   ^>=1.0.3.0
    , deepseq                  ^>=1.4.4.0
    , finitary                 ^>=2.0.0.0
    , finite-typelits          ^>=0.1.4.2
    , ghc-typelits-extra       ^>=0.4
    , ghc-typelits-knownnat    ^>=0.7.2
    , hashable                 ^>=1.3.0.0
    , transformers             ^>=0.5.6.2
    , vector                   ^>=0.12.1.2
    , vector-binary-instances  ^>=0.2.5.1
    , vector-instances         ^>=3.4

  hs-source-dirs:   src
  ghc-options:
    -Wall -Wcompat -Wincomplete-record-updates
    -Wincomplete-uni-patterns -Wredundant-constraints -Werror

  default-language: Haskell2010

test-suite tests
  type:             exitcode-stdio-1.0
  main-is:          Main.hs
  other-modules:
    Data.Finitary.Finiteness
    Data.Finitary.Internal
    Data.Finitary.PackBits
    Data.Finitary.PackBits.Unsafe
    Data.Finitary.PackBytes
    Data.Finitary.PackInto
    Data.Finitary.PackWords

  build-depends:
    , base
    , binary
    , bitvec
    , deepseq
    , finitary
    , finite-typelits
    , ghc-typelits-extra
    , ghc-typelits-knownnat
    , hashable
    , hedgehog                 ^>=1.0.2
    , hedgehog-classes         ^>=0.2.4.1
    , transformers
    , vector
    , vector-binary-instances
    , vector-instances

  ghc-options:
    -O2 -threaded -rtsopts -with-rtsopts=-N -Wall -Wcompat
    -Wincomplete-uni-patterns -Wredundant-constraints -Werror

  hs-source-dirs:   test src
  default-language: Haskell2010
